LOADING...

loading

TypeScript方法(function)

定义函数类型

我们在 TypeScript 中的函数并不需要刻意去定义,比如我们实现一个加法函数:

const add = (a: number, b: number) => a + b

实际上我们只定义了函数的两个参数类型,这个时候整个函数虽然没有被显式定义,但是实际上 TypeScript 编译器是能知道到这个函数的类型的:

图片

VSCode 的类型提示看到,TypeScript 已经推断出了整个函数的类型,虽然我们并没有显式定义出来,这就是所谓的 类型推断。

那么我应该如何显式定义一个函数的类型呢?

const add: (a: number, b: number) => number = (a: number, b: number) => a + b

括号里的 (a: number, b: number) 为参数类型,而通过 => 来连接参数与返回值, 最后则是返回值的类型。

函数的参数详解

可选参数

一个函数的参数可能是不存在的,这就需要我们使用可选参数来定义.

我们只需要在参数后面加上 ? 即代表参数可能不存在。

const add = (a: number, b?: number) => a + (b ? b : 0)

参数b有numberundefined两种可能。

图片
默认参数

默认参数在 JavaScript 同样存在,即在参数后赋值即可。

const add = (a: number, b = 10) => a + b
剩余参数

剩余参数与JavaScript种的语法类似,需要用 … 来表示剩余参数,而剩余参数 rest 则是一个由number组成的数组,在本函数中用 reduce 进行了累加求和。

const add = (a: number, ...rest: number[]) => rest.reduce(((a, b) => a + b), a)